package com.ruoyi.ams.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 资产借用归还对象 ams_asset_borrow
 * 
 * @author yfkj
 * @date 2022-05-16
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AmsAssetBorrow
{
    private static final long serialVersionUID = 1L;
    /** 资产借用归还表主键 */
    @TableField(exist = true)
    @TableId(type= IdType.AUTO)
    @ApiModelProperty(value =  "${comment}")
    private Long borrowId;
    /** 编号 */
    @Excel(name = "编号")
    @TableField(exist = true)
    @ApiModelProperty(value =  "编号")
    private String sn;
    /** 流程表主键 */
    @Excel(name = "流程表主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "流程表主键")
    private Long processId;

    /** 借用人主键 */
    @Excel(name = "借用人主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用人主键")
    private Long userId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用人姓名")
    private String userName;

    /** 借用部门主键 */
    @Excel(name = "借用部门主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用部门主键")
    private Long deptId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用部门名称")
    private String deptName;

    /** 借用后存放区域主键 */
    @Excel(name = "借用后存放区域主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用后存放区域主键")
    private Long addressId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用后存放区域名称")
    private String addressName;

    /** 借用后存放位置 */
    @Excel(name = "借用后存放位置")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用后存放位置")
    private String address;

    /** 归还后存放区域主键 */
    @Excel(name = "归还后存放区域主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "归还后存放区域主键")
    private Long returnAddressId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "归还后存放区域名称")
    private String returnAddressName;

    /** 归还后存放位置 */
    @Excel(name = "归还后存放位置")
    @TableField(exist = true)
    @ApiModelProperty(value =  "归还后存放位置")
    private String returnAddress;

    /** 借用资产类型主键 */
    @Excel(name = "借用资产类型主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用资产类型主键")
    private Long assetTypeId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用资产类型名称")
    private String assetTypeName;

    /** 借用资产主键 */
    @Excel(name = "借用资产主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用资产主键")
    private Long assetId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用资产Code")
    private String assetCode;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用资产ID的数组")
    private Long[] assetIds;

    /** 借用时间 */
    @Excel(name = "借用时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用时间")
    private Long borrowTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用时间字符串")
    private String borrowTimeStr;

    /** 预计归还时间 */
    @Excel(name = "预计归还时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "预计归还时间")
    private Long expectReturnTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "预计归还时间字符串")
    private String expectReturnTimeStr;

    /** 实际归还时间 */
    @Excel(name = "实际归还时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "实际归还时间")
    private Long actualReturnTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "实际归还时间字符串")
    private String actualReturnTimeStr;

    /** 借用处理人主键 */
    @Excel(name = "借用处理人主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用处理人主键")
    private Long chargerId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "借用处理人名称")
    private String chargerName;

    /** 归还处理人主键 */
    @Excel(name = "归还处理人主键")
    @TableField(exist = true)
    @ApiModelProperty(value =  "归还处理人主键")
    private Long returnChargerId;
    @TableField(exist = false)
    @ApiModelProperty(value =  "归还处理人名称")
    private String returnChargerName;

    /** 备注 */
    @Excel(name = "备注")
    @TableField(exist = true)
    @ApiModelProperty(value =  "备注")
    private String remark;
    /** 借用归还状态 */
    @Excel(name = "借用归还状态")
    @TableField(exist = true)
    @ApiModelProperty(value =  "借用归还状态")
    private String borrowStatus;
    /** 是否员工申请(0是 1否) */
    @Excel(name = "是否员工申请(0是 1否)")
    @TableField(exist = true)
    @ApiModelProperty(value =  "是否员工申请(0是 1否)")
    private Integer isWorkerApply;
    /** 申请理由 */
    @Excel(name = "申请理由")
    @TableField(exist = true)
    @ApiModelProperty(value =  "申请理由")
    private String applyReason;
    /** 申请状态 */
    @Excel(name = "申请状态")
    @TableField(exist = true)
    @ApiModelProperty(value =  "申请状态")
    private String applyStatus;
    /** 创建时间 */
    @Excel(name = "创建时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "创建时间")
    private Long createTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "创建时间字符串")
    private String createTimeStr;

    /** 修改时间 */
    @Excel(name = "修改时间")
    @TableField(exist = true)
    @ApiModelProperty(value =  "修改时间")
    private Long updateTime;
    @TableField(exist = false)
    @ApiModelProperty(value =  "修改时间字符串")
    private String updateTimeStr;
    public static final String BORROW_ID="borrow_id";
    public static final String SN="sn";
    public static final String PROCESS_ID="process_id";
    public static final String USER_ID="user_id";
    public static final String DEPT_ID="dept_id";
    public static final String ADDRESS_ID="address_id";
    public static final String ADDRESS="address";
    public static final String RETURN_ADDRESS_ID="return_address_id";
    public static final String RETURN_ADDRESS="return_address";
    public static final String ASSET_TYPE_ID="asset_type_id";
    public static final String ASSET_ID="asset_id";
    public static final String BORROW_TIME="borrow_time";
    public static final String EXPECT_RETURN_TIME="expect_return_time";
    public static final String ACTUAL_RETURN_TIME="actual_return_time";
    public static final String CHARGER_ID="charger_id";
    public static final String RETURN_CHARGER_ID="return_charger_id";
    public static final String REMARK="remark";
    public static final String BORROW_STATUS="borrow_status";
    public static final String IS_WORKER_APPLY="is_worker_apply";
    public static final String APPLY_REASON="apply_reason";
    public static final String APPLY_STATUS="apply_status";
    public static final String CREATE_TIME="create_time";
    public static final String UPDATE_TIME="update_time";
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("borrowId", getBorrowId())
            .append("sn", getSn())
            .append("processId", getProcessId())
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .append("addressId", getAddressId())
            .append("address", getAddress())
            .append("returnAddressId", getReturnAddressId())
            .append("returnAddress", getReturnAddress())
            .append("assetTypeId", getAssetTypeId())
            .append("assetId", getAssetId())
            .append("borrowTime", getBorrowTime())
            .append("expectReturnTime", getExpectReturnTime())
            .append("actualReturnTime", getActualReturnTime())
            .append("chargerId", getChargerId())
            .append("returnChargerId", getReturnChargerId())
            .append("remark", getRemark())
            .append("borrowStatus", getBorrowStatus())
            .append("isWorkerApply", getIsWorkerApply())
            .append("applyReason", getApplyReason())
            .append("applyStatus", getApplyStatus())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
